<template>
	<div>
		<el-row :gutter="10">
			<el-col :span="19">
				<el-button type="primary" icon="el-icon-circle-plus-outline" plain @click="add(0)">添加权限</el-button>
			</el-col>
		</el-row>
		<el-table :data="result.tableData" style="width: 100%" row-key="id" :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
		 @selection-change="handleSelectionChange">
			<el-table-column label="ID" prop="id">
			</el-table-column>
			<el-table-column label="权限名称" prop="name">
			</el-table-column>
			<el-table-column label="资源地址" prop="url">
			</el-table-column>
			<el-table-column label="资源类别" width="100">
				<template slot-scope="scope">
					<span v-if="scope.row.type === 1">目录</span>
					<span v-else>页面</span>
				</template>
			</el-table-column>
			<el-table-column label="是否有效" width="100">
				<template slot-scope="scope">
					<span v-if="scope.row.active === 1">有效</span>
					<span v-else>无效</span>
				</template>
			</el-table-column>
			<el-table-column label="操作" width="270px">
				<template slot-scope="scope">
					<template v-if="scope.row.active === 1">
						<el-button size="mini" v-if="scope.row.type !== 2" @click="add(scope.row.id)">添加子权限</el-button>
						<el-button size="mini" @click="handleEdit(scope.row.id)">编辑</el-button>
						<el-button size="mini" type="danger" @click="handleDelete(scope.row.id)">删除</el-button>
					</template>
					<template v-else>
						<el-button size="mini" type="info" @click="handleBack(scope.row.id)">恢复</el-button>
					</template>
				</template>
			</el-table-column>
		</el-table>
		<el-pagination style="margin-top:20px;" background layout="prev, pager, next" :page-count="result.pages"
		 :current-page.sync="query.pageNo" :page-size="query.pageSize" @current-change="getData()">
		</el-pagination>
		<el-dialog :title="title" :visible.sync="show" :close-on-click-modal="false" width="500px">
			<PermissEdit v-if="show" :show.sync="show" :parentId="parentId" @getData="getData()" :editid="editid" :tree="tree"></PermissEdit>
		</el-dialog>
	</div>
</template>
<script>
	import axios from "../../utils/axiosutils.js"
	import PermissEdit from '@/views/permission/edit'
	export default {
		name: 'Permission',
		data() {
			return {
				search: {
					name: ''
				},
				query: {
					name: '',
					pageNo: 1,
					pageSize: 8
				},
				result: {
					tableData: [],
					pages: 0
				},
				parentId: 1111,
				show: false,
				editid: null,
				tree: false,
				selectedrow: [],
				title: ''
			}
		},
		components: {
			PermissEdit
		},
		created() {
			this.getData()
		},
		methods: {
			getData() {
				axios.get('/permission/list', response => {
					this.result.tableData = response.obj.records
					this.result.pages = response.obj.pages
				}, this.query)
			},
			handleEdit(id) {
				this.title = '修改权限'
				this.editid = id
				this.tree = true
				this.show = true
			},
			add(parentId) {
				this.parentId = parentId
				this.title = '添加权限'
				this.editid = null
				this.tree = false
				this.show = true
			},
			handleDelete(id) {
				axios.del('/permission/del', response => {
					this.getData()
				}, {
					id: id
				})
			},
			handleSelectionChange(val) {
				// val参数为所有选中行的数据
				this.selectedrow = val
			},
			handleBack(id) {
				axios.del('/permission/back', response => {
					this.getData()
				}, {
					id: id
				}, 'back')
			}
		}
	}
</script>
<style scoped>
</style>
